package com.xmall.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xmall.product.define.dto.group.GroupDto;
import com.xmall.product.define.request.group.GroupQueryParams;
import com.xmall.product.define.request.group.GroupUpdateRequest;
import com.xmall.product.entity.Group;

import java.util.List;

/**
 * <p>
 * 属性分组 服务类
 * </p>
 *
 * @author xmall
 * @since 2023-11-02
 */
public interface IGroupService extends IService<Group> {

    /**
     * 新增
     */
    void saveEntity(GroupUpdateRequest request);

    /**
     * 编辑
     */
    void updateEntity(GroupUpdateRequest request);

    /**
     * 删除
     */
    void deleteEntity(Long id);

    /**
     * 交换排序值
     */
    void swapSort(Long prevGroupId, Long nextGroupId);

    /**
     * 根据分类ID查询分组列表（普通属性）
     */
    List<GroupDto> listWithCascade(GroupQueryParams params);

    /**
     * 列表
     */
    List<GroupDto> list(GroupQueryParams request);

    /**
     * 详情
     */
    GroupDto info(Long id);

}
